This invention relates generally to the field of computer software boot techniques, and more particularly to the execution of computer boot techniques within a network interface adapter.
In a typical computer system interconnected to a network, a network-interface-adapter (NIA) acts as an interface between the host computer and a computer network. The NIA performs the necessary interface functions for transmitting and receiving data over the computer network. The NIA include data or software program code images stored in memory within the NIA that the host computer utilizes in communicating over a computer data network. As such, the data and software program code images must be accessible to the host computer in order to be accessed and utilized by the host computer. In order for these resources to be accessible to the host computer, these resources must be included in the host computer address space. To be included within the host computer address space, these resources need to have memory addresses assigned to them that are accessible by the host computer.
Prior art systems have stored data and software program code images in serial EEPROMs. A bottleneck existed in the transfer of a data image or a code image from the NIA to the host computer due to the serial nature and speed of the state machine and the serial EEPROMs.
It would therefore be desirable to have a NIA that that is capable of storing data and software program code images having a non-static host address and of transferring the data and software program code images stored in an NIA address, which may be specified and which is independent of the host computer address, to the host computer efficiently.
A method is disclosed for accessing, by a host computer, a data image stored within a network interface adapter (NIA). Upon boot up, the NIA, requests an allocation of memory space from the host computer that may be accessed by the host computer. The host computer responds with an individual base address and memory allocation. Each of the base addresses supplied is within the host computer address space. When the host computer attempts to read data contained within the address space assigned to the NIA, the address is trapped on the NIA, and the NIA processor is notified. The NIA processor reads the address requested by the host computer and translates the address in the host computer address space into a physical address in the NIA address space. Upon locating the data at the applicable physical address, the NIA processor transfers the data to the host computer.